package cn.iocoder.yudao.module.api.pay.bill.dto;

import cn.iocoder.yudao.framework.business.basic.pojo.bo.CreateTimeQuery;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Data
public class PayBillPageDTO extends PageParam implements CreateTimeQuery {

    /**
     * @see cn.iocoder.yudao.module.api.pay.bill.enums.BillModeEnum
     */
    @Schema(description = "模式：0-支出、1-收入", example = "1")
    private Integer mode;

    /**
     * @see cn.iocoder.yudao.module.api.pay.bill.enums.BillCategoryEnum
     */
    @Schema(description = "资产种类：money-零钱、commission-佣金、revenue-营业收益、bonus-分红、interest-消费金、fee-手续费、cryptocurrency_origin-联盟豆、cryptocurrency_increment-收益豆", example = "money")
    private String category;

    /**
     * @see cn.iocoder.yudao.module.api.pay.bill.enums.BillTypeEnum
     */
    @Schema(description = "业务类型：pay_product-购买产品、commission_unfreeze-佣金结算、cash_out_success-提现成功", example = "pay_product")
    private String type;

    @Schema(description = "年", example = "2025")
    private Integer year;

    @Schema(description = "月", example = "01")
    private Integer month;

    @Schema(description = "日", example = "01")
    private Integer day;

    @Schema(description = "添加时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
